This invention relates generally to the control and management of automated manufacturing systems, and more particularly to applying model-based planning and scheduling to reprioritization and reallocation of resources among jobs of differing priorities.
Current system control software for production systems requires that jobs being executed fully complete before other jobs can be executed. This is unsatisfactory for high-volume systems, in which jobs are often long, particularly in those instances in which new jobs have a higher priority than jobs being produced, and instead of waiting for a long, lower-priority job to finish, one would like to produce those new jobs in parallel or instead of the lower-priority jobs. Scheduling and system control as implemented for traditional, in-line systems, or even as proposed for reconfigurable systems, only allows adding in new jobs if they do not conflict with jobs being executed. For example, in a printing system, if the system has sufficient capacity and the necessary resources are available, a new job could be inserted at the front of the job queue and thus delay the remainder of unfinished jobs. However, the current jobs may have reserved all the finishers, in which case a new job cannot be scheduled and executed until at least one of the current jobs has completed. In such cases, it would be desirable to interrupt or even abort long low-priority jobs if high-priority jobs enter the job queue. Reconfigurable production systems, in particular systems with parallel capabilities, should also allow one to reallocate some of the system's capabilities to higher-priority jobs. This would increase productivity and customer satisfaction.
To accomplish this end, it would be useful for the system control software, with help from the planner and scheduler, to make use of the system's various modules and often extensive capabilities to reroute jobs in process to permit work on new higher priority jobs, or to intelligently purge parts of a job and restart it later.